Skip to content

Conversation

@potuz
Copy link
Contributor

@potuz potuz commented Jul 24, 2024

This PR enables and implements the modification to the pyspec tests so that the currently existing tests are executed with the EIP-7732 fork enabled. It is based on top of #3828

  • This PR Does not implement new tests. In particular builders boosts and (block, slot, payload_present)-voting is not tested.
  • Some tests are skipped because they don't make sense in ePBS. Mostly these are tests that require the execution payload to be present within the beacon block. None of these tests is a forkchoice test except for one.


*Note:* This specification is built upon [Electra](../../electra/beacon-chain.md) and is under active development.

This feature adds new staked consensus participants called *Builders* and new honest validators duties called *payload timeliness attestations*. The slot is divided in **four** intervals. Honest validators gather *signed bids* (a `SignedExecutionPayloadHeader`) from builders and submit their consensus blocks (a `SignedBeaconBlock`) including these bids at the beginning of the slot. At the start of the second interval, honest validators submit attestations just as they do previous to this feature). At the start of the third interval, aggregators aggregate these attestations and the builder broadcasts either a full payload or a message indicating that they are withholding the payload (a `SignedExecutionPayloadEnvelope`). At the start of the fourth interval, some validators selected to be members of the new **Payload Timeliness Committee** (PTC) attest to the presence and timeliness of the builder's payload.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think (Signed|)ExecutionPayloadHeader should be renamed to (Signed|)ExecutionPayload(Bid|Commitment|Info|Metadata), as it serves a new purpose.

.+Header so far is used for SSZ summaries of the corresponding base type, which is no longer the case as the full ExecutionPayload still contains the extra fields such as transactions_root and so on.

Also, the ExecutionPayloadHeader is used by light clients as part of LightClientHeader. They still need the previous semantics of it being the SSZ summary of the ExecutionPayload. Therefore, recommending to drop ExecutionPayloadHeader from the beacon-chain.md spec and creating a new type of different name.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah @ethDreamer had the same complaint, I don't mind any name change eventually for this object. It's not a trivial change to implement in the spec, so probably will wait until this is agreed to be shipped.

Comment on lines 159 to 167
```python
class ExecutionPayloadEnvelope(Container):
payload: ExecutionPayload
builder_index: ValidatorIndex
beacon_block_root: Root
blob_kzg_commitments: List[KZGCommitment, MAX_BLOB_COMMITMENTS_PER_BLOCK]
payload_withheld: boolean
state_root: Root
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Side note that this one would benefit from EIP-7495 SSZ StableContainer as payload_withheld could be dropped and payload become Optional[ExecutionPayload]

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, I'm waiting for that to be adopted in Electra and I'll rebase on top of it


### Honest payload withheld messages

An honest builder that has seen a `SignedBeaconBlock` referencing his signed bid, but that block was not timely and thus it is not the head of the builder's chain, may choose to withhold their execution payload. For this the builder should simply act as if it were building an empty payload, without any transactions, withdrawals, etc. The `payload.block_hash` may not be equal to `header.block_hash`. The builder may then sets `payload_withheld` to `True`. If the PTC sees this message and votes for it, validators will attribute a *withholding boost* to the builder, which would increase the forkchoice weight of the parent block, favoring it and preventing the builder from being charged for the bid by not revealing.
Copy link
Contributor

@etan-status etan-status Jul 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Today, empty payload is actually not allowed in Capella, at the very least the withdrawals are required. Would this allow the situation where someone can intentionally produce a block with a payload that does not contain withdrawals?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A payload without withdrawals would be irrelevant here, it could even be an invalid payload. If the withheld wins then the CL block is reorged, if it loses then the payload is invalid and the builder pays the bid. Either way, having the payload to be optional is a cleaner solution, but I will wait until it's merged in dev.

builder_index: ValidatorIndex
slot: Slot
value: Gwei
blob_kzg_commitments_root: Root
Copy link
Contributor

@etan-status etan-status Jul 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't blob_kzg_commitments_root also be delayed until after process_execution_payload?

Otherwise, that's non-deleteable jank that remains even if the payload ultimately gets withheld.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think in principle it could, the bid may not even commit a payload has even in principle. But I went with the minimal modification to the current consensus algo. Can switch to that if required. I don't see why this causes yunk though, it's just in the header that it's last committed. It doesn't appear anywhere else.

| `EIP7732_FORK_VERSION` | `eip7732.BlobSidecar` |


##### ExecutionPayloadEnvelopeByRoot v1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A ByRange request could be useful for historical syncing (with same retention period as SignedBeaconBlock).

It should still be possible to sync an EL that is not connected to the Internet, from solely:

  • the archived EL history up to the merge
  • and then from archived CL history (era files + SignedExecutionPayloadEnvelope)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| `EIP7732_FORK_VERSION` | `eip7732.SignedBeaconBlock` |


##### BlobSidecarsByRoot v2
Copy link
Contributor

@etan-status etan-status Jul 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These don't need a new (v2) version, the existing one is already versioned by ForkDigest-context. New version on the request is only needed if the request parameters or semantics change.

voluntary_exits: List[SignedVoluntaryExit, MAX_VOLUNTARY_EXITS]
sync_aggregate: SyncAggregate
# Execution
# Removed execution_payload [Removed in EIP-7732]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Nimbus, we actually use execution_payload.prev_randao to skip RANDAO mix computation from history when computing shufflings for data from alternate branches 🙃

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, not an issue, the prev_randao is still available by loading the SignedExecutionPayloadEnvelope.

Copy link
Contributor

@etan-status etan-status left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the proposal. This is a big upgrade over the current builder API.

One aspect that needs more consideration is the sync committee.

As is, the sync committee keeps signing the BeaconBlock from prior slot. However, the BeaconBlock no longer contains the full EL block header. body.signed_execution_payload_header.message.block_hash is unreliable because it may turn out that the payload was withheld and the block itself is a noop.

The latest reliable EL block hash is available in state_root->state.latest_block_hash, which is most likely the one from 2 slots ago (latest), or earlier (in case of missed blocks / withheld payloads). This is probably as good as it can get here, but is still notable as it means that any LC based syncs are now another 12 seconds behind (not prohibitively slow, still).

With state_root->state.latest_block_hash, implementations need additional BeaconState data to obtain the latest valid EL block hash. Given that historical BeaconState access is quite expensive, it could be worthwhile to continue tracking the latest_block_hash inside BeaconBlockBody (or in BeaconBlockHeader so it automatically gets exposed to BeaconState.latest_block_header as well).

Furthermore, the EL block header itself has not been switched to SSZ. As proposed, while the EL block hash continues to be available, all SSZ commitments to the ExecutionPayload are removed: Neither BeaconBlock nor BeaconState contain an SSZ commitment to it. This is a step backwards for CL light clients because it removes efficient SSZ access to EL block header fields and requires MPT/RLP when fetching the data in a separate roundtrip from an EL. Adding the latest_execution_payload_root to BeaconBlockBody (and, therefore, also toBeaconState) would be very appreciated to retain the functionality until the EL block header is switched to SSZ.


[Modified in EIP-7732]

The `BlobSidecar` container is modified indirectly because the constant `KZG_COMMITMENT_INCLUSION_PROOF_DEPTH` is modified. The function `get_blob_sidecars` is modified because the KZG commitments are no longer included in the beacon block but rather in the `ExecutionPayloadEnvelope`, the builder has to send the commitments as parameters to this function.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If EIP-7688 is adopted, BeaconBlockBody gindices and depth constants become stable, and BeaconBlockBody changes no longer affect random other containers such as BlobSidecar

Furthermore, PeerDAS removes BlobSidecar; if the activation epoch is synchronized with EIP-7688, it means that there is no expected breakage here.

At any given slot, the status of the blockchain's head may be either
- A block from a previous slot (e.g. the current slot's proposer did not submit its block).
- An *empty* block from the current slot (e.g. the proposer submitted a timely block, but the builder did not reveal the payload on time).
- A full block for the current slot (both the proposer and the builder revealed on time).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe present/absent would be better names than full/empty.
And, using execution block explicitly in the spec to avoid ambiguity with the beacon block.

@jtraglia
Copy link
Member

I've pulled in changes from upstream dev. There are still two failing tests. Not quite sure what's going on but I'll try to investigate later when I have time. Also left a few todos to follow up on.

@jtraglia
Copy link
Member

@potuz could you review my changes? Happy to merge if you think everything's alright.

@potuz
Copy link
Contributor Author

potuz commented Mar 13, 2025

Talked offline, thanks a lot @jtraglia !

@jtraglia
Copy link
Member

Great. Thanks, @potuz. Going to merge this now & follow up with smaller PRs to fix the todos later.

@jtraglia jtraglia merged commit fe73d4e into ethereum:dev Mar 14, 2025
25 checks passed
mcdee pushed a commit to mcdee/consensus-specs that referenced this pull request Mar 27, 2025
Rose2161 pushed a commit to Rose2161/consensus-specs that referenced this pull request Aug 18, 2025
* Add always_bls decorator to test_process_pending_deposits_multiple_for_new_validator (ethereum#4121)

* In process_registry_updates, change two ifs to elifs (ethereum#4104)

* Basic validator custody (ethereum#3871)

* Bump version to 1.5.0-beta.2 (ethereum#4125)

* Add python version to circleci venv key (ethereum#4126)

* test: Cover signature_slot tiebreaker in is_better_update

* spec: Add comment to clarify tiebreaker for signature slots in is_better_update function

* Add back `compute_cells` function

* feedback

* Update function doc

Co-authored-by: George Kadianakis <[email protected]>

* Add clarifications regarding SSZ-snappy length prefix

* Do not double build pyspec

* For the most part, rename whisk to eip7441

* Rename test_whisk to test_eip7441

* Fix lint

* Do not print "building eth2spec"

* Remove WHISK_ prefixes

* as per feedback

* Remove python version from circleci cache key (ethereum#4134)

* Add light client sync test for forced update before update timeout (ethereum#4127)

* Move deprecated specs to new directory

* Fix typos

* Fix broken link polynomial-commitments-sampling.md (ethereum#4140)

* Simplify build system for computed constants

When type definitions depend on preset values, those preset values have
to be manually specified in `hardcoded_custom_type_dep_constants` in a
manual and error prone way. By using heuristics similar to other parts
of the spec builder, that can be automated so that computed constants
are automatically generated _after_ preset values are emitted. This also
makes it clearer which constants are pure, and which constants depend on
specific preset values being used.

* Use correct division kind in Fulu

* Define PAYLOAD_TIMELY_THRESHOLD with int division

* Cast CELLS_PER_EXT_BLOB to an int in a few spots

* Fix list presentation in rendered specifications (ethereum#4156)

* Fix typos raised in another PR

* Fix some nits with bellatrix p2p formatting

* Dedent line

* Add EIP-7805 (FOCIL) specs (ethereum#4003)

* Add consolidation request test with 0x00 source credentials (ethereum#4162)

* Bump version to v1.5.0-beta.3 (ethereum#4164)

* Change Store.inclusion_list from List to Set (ethereum#4165)

* EIP-7732 current fork spectests (ethereum#3854)

* Test blob_kzg_commitments_merkle_proof with different blob counts (ethereum#4161)

* Update canonical network names for Hoodi (ethereum#4166)

* Improve readme and remove docker on tests (ethereum#4178)

* Create honest validator specs for Fulu (ethereum#4135)

* Stop running circleci checks (ethereum#4192)

* chore: pinning github actions versions (ethereum#4193)

* Update GitHub Actions in .github/workflows/docs.yml to use pinned hashes

* Update GitHub Actions in .github/workflows/generate_vectors.yml to use pinned hashes

* Update GitHub Actions in .github/workflows/run-tests.yml to use pinned hashes

* feat(ci): add dependabot to check for github-actions updates weekly

* Bump the actions group with 3 updates (ethereum#4194)

Bumps the actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-python](https://github.com/actions/setup-python) and [actions/cache](https://github.com/actions/cache).


Updates `actions/checkout` from 3.6.0 to 4.2.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3.6.0...11bd719)

Updates `actions/setup-python` from 4.7.1 to 5.4.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4.7.1...4237552)

Updates `actions/cache` from 2 to 4
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@8492260...5a3ec84)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add weekly dependabot check for python dependencies (ethereum#4110)

* Bump mkdocs-awesome-pages-plugin from 2.8.0 to 2.10.1 (ethereum#4196)

Bumps [mkdocs-awesome-pages-plugin](https://github.com/lukasgeiter/mkdocs-awesome-pages-plugin) from 2.8.0 to 2.10.1.
- [Release notes](https://github.com/lukasgeiter/mkdocs-awesome-pages-plugin/releases)
- [Commits](lukasgeiter/mkdocs-awesome-nav@v2.8.0...v2.10.1)

---
updated-dependencies:
- dependency-name: mkdocs-awesome-pages-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump pytest from 8.3.4 to 8.3.5 (ethereum#4197)

Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.4 to 8.3.5.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@8.3.4...8.3.5)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump mkdocs from 1.4.2 to 1.6.1 (ethereum#4198)

Bumps [mkdocs](https://github.com/mkdocs/mkdocs) from 1.4.2 to 1.6.1.
- [Release notes](https://github.com/mkdocs/mkdocs/releases)
- [Commits](mkdocs/mkdocs@1.4.2...1.6.1)

---
updated-dependencies:
- dependency-name: mkdocs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add fork.md for eip7805 (ethereum#4191)

* Add fork.md for eip7805

* Fix table & remove unnecessary section

* Add electra import

---------

Co-authored-by: Justin Traglia <[email protected]>

* Bump trie from 3.0.1 to 3.1.0 (ethereum#4201)

Bumps [trie](https://github.com/ethereum/py-trie) from 3.0.1 to 3.1.0.
- [Changelog](https://github.com/ethereum/py-trie/blob/main/CHANGELOG.rst)
- [Commits](ethereum/py-trie@v3.0.1...v3.1.0)

---
updated-dependencies:
- dependency-name: trie
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump py-ecc from 6.0.0 to 7.0.1 (ethereum#4202)

Bumps [py-ecc](https://github.com/ethereum/py_ecc) from 6.0.0 to 7.0.1.
- [Release notes](https://github.com/ethereum/py_ecc/releases)
- [Changelog](https://github.com/ethereum/py_ecc/blob/main/docs/release_notes.rst)
- [Commits](ethereum/py_ecc@v6.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: py-ecc
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Group all dependabot python upgrades (ethereum#4204)

* Update BlobsBundle for Fulu (ethereum#4187)

* Clarify validator custody updates (ethereum#4188)

* Fix some comments (ethereum#4209)

Signed-off-by: threehonor <[email protected]>

* Bump the actions group with 11 updates (ethereum#4207)

* Bump the actions group with 11 updates

Bumps the actions group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [lru-dict](https://github.com/amitdev/lru-dict) | `1.2.0` | `1.3.0` |
| [marko](https://github.com/frostming/marko) | `1.0.2` | `2.1.2` |
| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.21.0` | `3.22.0` |
| ruamel-yaml | `0.17.21` | `0.18.10` |
| [setuptools](https://github.com/pypa/setuptools) | `75.8.0` | `78.0.2` |
| [codespell](https://github.com/codespell-project/codespell) | `2.4.0` | `2.4.1` |
| [flake8](https://github.com/pycqa/flake8) | `5.0.4` | `7.1.2` |
| [mypy](https://github.com/python/mypy) | `0.981` | `1.15.0` |
| [filelock](https://github.com/tox-dev/py-filelock) | `3.17.0` | `3.18.0` |
| [pathos](https://github.com/uqfoundation/pathos) | `0.3.0` | `0.3.3` |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.1.5` | `9.6.9` |


Updates `lru-dict` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/amitdev/lru-dict/releases)
- [Commits](amitdev/lru-dict@v1.2.0...v1.3.0)

Updates `marko` from 1.0.2 to 2.1.2
- [Release notes](https://github.com/frostming/marko/releases)
- [Changelog](https://github.com/frostming/marko/blob/master/CHANGELOG.md)
- [Commits](frostming/marko@v1.0.2...v2.1.2)

Updates `pycryptodome` from 3.21.0 to 3.22.0
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](Legrandin/pycryptodome@v3.21.0...v3.22.0)

Updates `ruamel-yaml` from 0.17.21 to 0.18.10

Updates `setuptools` from 75.8.0 to 78.0.2
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v75.8.0...v78.0.2)

Updates `codespell` from 2.4.0 to 2.4.1
- [Release notes](https://github.com/codespell-project/codespell/releases)
- [Commits](codespell-project/codespell@v2.4.0...v2.4.1)

Updates `flake8` from 5.0.4 to 7.1.2
- [Commits](PyCQA/flake8@5.0.4...7.1.2)

Updates `mypy` from 0.981 to 1.15.0
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](python/mypy@v0.981...v1.15.0)

Updates `filelock` from 3.17.0 to 3.18.0
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst)
- [Commits](tox-dev/filelock@3.17.0...3.18.0)

Updates `pathos` from 0.3.0 to 0.3.3
- [Release notes](https://github.com/uqfoundation/pathos/releases)
- [Commits](uqfoundation/pathos@pathos-0.3.0...0.3.3)

Updates `mkdocs-material` from 9.1.5 to 9.6.9
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](squidfunk/mkdocs-material@9.1.5...9.6.9)

---
updated-dependencies:
- dependency-name: lru-dict
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: marko
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: pycryptodome
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: ruamel-yaml
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: setuptools
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: codespell
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: flake8
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: mypy
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: pathos
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>

* Fix title access for marko

* Fix indentation

* Add mypy bandaid to fix linter

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Traglia <[email protected]>

* Fix a small bug in a pending consolidation test (ethereum#4217)

* Update fork trigger sections (ethereum#4208)

* Use consistent note style (ethereum#4224)

* Remove outdated paragraph about ExecutionPayloadV4 in electra (ethereum#4221)

* Add missing section headers to fulu spec (ethereum#4223)

* Replace some instances of "extended" with "modified" (ethereum#4225)

* Add Distributed Blob Publishing to Fulu networking spec (ethereum#4183)

* Add distributed blob publishing section to Fulu p2p interface spec.

# Conflicts:
#	specs/deneb/p2p-interface.md

* Apply suggestions from code review

Co-authored-by: Lion - dapplion <[email protected]>

* Apply suggestions from code review

Co-authored-by: Justin Traglia <[email protected]>
Co-authored-by: fradamt <[email protected]>

* Fix lint

* Fix lint.

* Add new line before list

* Clarify columns that clients must publish to in Distributed Publishing.

* add function to retrieve sidecars from both block and sidecar

* fix lint

* fix lint again

* fix tests

* Fix tests & nits

* Fix more nits

* Address review comment.

* clarify language

Co-authored-by: Alex Stokes <[email protected]>

---------

Co-authored-by: Lion - dapplion <[email protected]>
Co-authored-by: Justin Traglia <[email protected]>
Co-authored-by: fradamt <[email protected]>
Co-authored-by: fradamt <[email protected]>
Co-authored-by: Justin Traglia <[email protected]>
Co-authored-by: Alex Stokes <[email protected]>

* Use finalized state for Fulu validator custody (ethereum#4211)

In `get_validators_custody_requirement`, use the latest finalized state as `BeaconState` instead of the current beacon state.

* State that effective balance should be used (ethereum#4218)

* Bump version to v1.5.0-beta.4 (ethereum#4236)

* Round down value when setting validator's effective balance (ethereum#4229)

* Add full_pending_withdrawals_but_first_skipped_* tests (ethereum#4237)

* Add multiple_pending_deposits_same_pubkey_different_signature test (ethereum#4238)

* Add withdrawal_and_consolidation_effective_balance_updates test (ethereum#4239)

* Bump actions/setup-python from 5.4.0 to 5.5.0 in the actions group (ethereum#4242)

Bumps the actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python).


Updates `actions/setup-python` from 5.4.0 to 5.5.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@4237552...8d9ed9a)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 5.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the actions group with 3 updates (ethereum#4241)

* Bump the actions group with 3 updates

Bumps the actions group with 3 updates: [setuptools](https://github.com/pypa/setuptools), [flake8](https://github.com/pycqa/flake8) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `setuptools` from 78.0.2 to 78.1.0
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v78.0.2...v78.1.0)

Updates `flake8` from 7.1.2 to 7.2.0
- [Commits](PyCQA/flake8@7.1.2...7.2.0)

Updates `mkdocs-material` from 9.6.9 to 9.6.10
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](squidfunk/mkdocs-material@9.6.9...9.6.10)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 78.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: flake8
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mkdocs-material
  dependency-version: 9.6.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>

* Fix lint

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Traglia <[email protected]>

* close outdated issues (ethereum#4231)

* Adds test that affects the proposer selection (ethereum#4230)

* Change in balance affects proposer selection

* move test to phase0

* lint imports

* improve comment

* brute force proposer change

* Remove helper function

---------

Co-authored-by: Justin Traglia <[email protected]>

* Use `mdformat` for markdown formatting (ethereum#4244)

* Replace skip footnote with html block

* Remove unnecessary duration columns

* Add mdformat to pyproject

* Start to use mdformat-toc

* Remove table of contents headers

* Fix empty header

* Finally, run mdformat

* Remove doctoc from CI

* Fix issue with eip7732

* Error if linter changes something in CI

* Use black for linting tests directory (ethereum#4245)

* Remove flake8 & run black on tests

* Run make lint

---------

Co-authored-by: Justin Traglia <[email protected]>

* Add two consolidation request processing edge case tests (ethereum#4246)

* Fix the full consolidation queue test (ethereum#4248)

* Bump the actions group with 3 updates (ethereum#4249)

Bumps the actions group with 3 updates: [marko](https://github.com/frostming/marko), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `marko` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/frostming/marko/releases)
- [Changelog](https://github.com/frostming/marko/blob/master/CHANGELOG.md)
- [Commits](frostming/marko@v2.1.2...v2.1.3)

Updates `pytest-cov` from 6.0.0 to 6.1.1
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v6.0.0...v6.1.1)

Updates `mkdocs-material` from 9.6.10 to 9.6.11
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](squidfunk/mkdocs-material@9.6.10...9.6.11)

---
updated-dependencies:
- dependency-name: marko
  dependency-version: 2.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: pytest-cov
  dependency-version: 6.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mkdocs-material
  dependency-version: 9.6.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add EIP-7805 fork version/epoch to the configs (ethereum#4250)

* Update WS period computation for Electra (ethereum#4179)

* Add `withdrawal_requests_when_pending_withdrawal_queue_is_full` test (ethereum#4252)

* Clean up electra presets (ethereum#4254)

* feat: schedule electra for mainnet (ethereum#4258)

* Test consolidation with same source and target (ethereum#4259)

* Bump version to v1.5.0-beta.5 (ethereum#4260)

* Bump actions/setup-python from 5.4.0 to 5.5.0 in the actions group (ethereum#4242)

Bumps the actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python).


Updates `actions/setup-python` from 5.4.0 to 5.5.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@4237552...8d9ed9a)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 5.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the actions group with 3 updates (ethereum#4241)

* Bump the actions group with 3 updates

Bumps the actions group with 3 updates: [setuptools](https://github.com/pypa/setuptools), [flake8](https://github.com/pycqa/flake8) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `setuptools` from 78.0.2 to 78.1.0
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v78.0.2...v78.1.0)

Updates `flake8` from 7.1.2 to 7.2.0
- [Commits](PyCQA/flake8@7.1.2...7.2.0)

Updates `mkdocs-material` from 9.6.9 to 9.6.10
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](squidfunk/mkdocs-material@9.6.9...9.6.10)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 78.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: flake8
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mkdocs-material
  dependency-version: 9.6.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>

* Fix lint

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Traglia <[email protected]>

* Adds test that affects the proposer selection (ethereum#4230)

* Change in balance affects proposer selection

* move test to phase0

* lint imports

* improve comment

* brute force proposer change

* Remove helper function

---------

Co-authored-by: Justin Traglia <[email protected]>

* Use `mdformat` for markdown formatting (ethereum#4244)

* Replace skip footnote with html block

* Remove unnecessary duration columns

* Add mdformat to pyproject

* Start to use mdformat-toc

* Remove table of contents headers

* Fix empty header

* Finally, run mdformat

* Remove doctoc from CI

* Fix issue with eip7732

* Error if linter changes something in CI

* Use black for linting tests directory (ethereum#4245)

* Remove flake8 & run black on tests

* Run make lint

---------

Co-authored-by: Justin Traglia <[email protected]>

* Add two consolidation request processing edge case tests (ethereum#4246)

* Fix the full consolidation queue test (ethereum#4248)

* Bump the actions group with 3 updates (ethereum#4249)

Bumps the actions group with 3 updates: [marko](https://github.com/frostming/marko), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `marko` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/frostming/marko/releases)
- [Changelog](https://github.com/frostming/marko/blob/master/CHANGELOG.md)
- [Commits](frostming/marko@v2.1.2...v2.1.3)

Updates `pytest-cov` from 6.0.0 to 6.1.1
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v6.0.0...v6.1.1)

Updates `mkdocs-material` from 9.6.10 to 9.6.11
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](squidfunk/mkdocs-material@9.6.10...9.6.11)

---
updated-dependencies:
- dependency-name: marko
  dependency-version: 2.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: pytest-cov
  dependency-version: 6.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mkdocs-material
  dependency-version: 9.6.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add EIP-7805 fork version/epoch to the configs (ethereum#4250)

* Update WS period computation for Electra (ethereum#4179)

* Add `withdrawal_requests_when_pending_withdrawal_queue_is_full` test (ethereum#4252)

* Clean up electra presets (ethereum#4254)

* feat: schedule electra for mainnet (ethereum#4258)

* Test consolidation with same source and target (ethereum#4259)

* Bump version to v1.5.0-beta.5 (ethereum#4260)

* Cleanup presets and configs (ethereum#4256)

* Delete unnecessary blank lines

* Remove more unnecessary blank lines

* Use consistent title/order for rewards and penalties

* Add some units

* Various improvements

* Split up deneb presets appropriately

* Clean up fulu presets

* Fix nits

* Rename eip7732 preset files

* Remove deprecated presets

* Random config changes

* More configs cleanup

* Fix more phase0 stuff

* Various cleanups

* Go with Ben's year

* Fix eip7732 kzg commitment inclusion proof depth (ethereum#4264)

* Update inclusion proof depth for mainnet

* Disable two fork-choice tests for now

* Remove unused is_previous_epoch_justified function (ethereum#4269)

* Disable parallelism with make test if a test name is specified (ethereum#4270)

* Simplify specification tables in main readme (ethereum#4271)

* Do a major clean up of the main readme (ethereum#4272)

* Add various tests cases for electra (ethereum#4265)

* Bump the actions group with 2 updates (ethereum#4273)

* Allow skipping verification for blobs from EL (ethereum#4262)

* EIP7805: Use MAX_TRANSACTIONS_PER_PAYLOAD for InclusionList transactions size (ethereum#4220)

* Update config/preset files for EIP7805 (ethereum#4268)

* Add eip7805 presets

* Move params to presets

* Move IL committee domain to constant (ethereum#4276)

* Add workflow to run nightly mainnet tests (ethereum#4280)

* Fix bug in electra withdrawals processing (ethereum#4281)

* Fix a couple broken links (ethereum#4279)

* Bump the actions group with 3 updates (ethereum#4282)

Bumps the actions group with 3 updates: [setuptools](https://github.com/pypa/setuptools), [pathos](https://github.com/uqfoundation/pathos) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `setuptools` from 78.1.0 to 79.0.0
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v78.1.0...v79.0.0)

Updates `pathos` from 0.3.3 to 0.3.4
- [Release notes](https://github.com/uqfoundation/pathos/releases)
- [Commits](uqfoundation/pathos@0.3.3...0.3.4)

Updates `mkdocs-material` from 9.6.11 to 9.6.12
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](squidfunk/mkdocs-material@9.6.11...9.6.12)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 79.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: pathos
  dependency-version: 0.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: mkdocs-material
  dependency-version: 9.6.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve DataColumnSidecarsByRoot request (ethereum#4284)

* Mark electra as stable (ethereum#4285)

* Fix some small, unrelated nits

* Remove electra work-in-progress notes

* Move electra to stable table

* Add two new custody group tests (ethereum#4290)

* Remove unnecessary sort in `compute_columns_for_custody_group` (ethereum#4289)

The output is already sorted, no need to sort it again.

* Bump actions/setup-python from 5.5.0 to 5.6.0 in the actions group (ethereum#4293)

Bumps the actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python).


Updates `actions/setup-python` from 5.5.0 to 5.6.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@8d9ed9a...a26af69)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 5.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump setuptools from 79.0.0 to 80.0.0 in the actions group (ethereum#4292)

Bumps the actions group with 1 update: [setuptools](https://github.com/pypa/setuptools).


Updates `setuptools` from 79.0.0 to 80.0.0
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v79.0.0...v80.0.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 80.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Make `*_REQUESTS_PER_PAYLOAD` the same for mainnet/minimal (ethereum#4291)

* Add ability to run generators for specific tests (ethereum#4288)

* Add test_case argument when running generator targets.
Add same argument to the general test generator.
Skip generating a test if test_case was provided and it does not match.

* Add fork-list and preset-list arguments when running generator targets.
Update case_list argument to --case-list, for consistenty with fork and preset names.
Have these list arguments actually support providing lists.

* Fix: Check correct variable for forks' print statement.
Add print statement for cases too.

* Update generator README for new arguments.

* Update README to include gen_all in the docs for the new filtering.

* Fix linting issues.

* Fix example indentation

---------

Co-authored-by: Justin Traglia <[email protected]>

* Remove deprecated testing infrastructure (ethereum#4294)

* deprecate custody game tests

* deprecate sharding tests

* add ignore to Makefile

* fix imports

* remove DAS phase

* remove sharding TODOs and mention

* create deprecated state functions for sharding

* linting changes

* remove deprecated tests

* remove other references

* Revert "add ignore to Makefile"

This reverts commit 5cc55f6.

* Update ELECTRA_FORK_EPOCH in fork.md

* Bump the actions group with 2 updates (ethereum#4299)

Bumps the actions group with 2 updates: [setuptools](https://github.com/pypa/setuptools) and [pylint](https://github.com/pylint-dev/pylint).


Updates `setuptools` from 80.0.0 to 80.3.1
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v80.0.0...v80.3.1)

Updates `pylint` from 3.3.6 to 3.3.7
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](pylint-dev/pylint@v3.3.6...v3.3.7)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 80.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: pylint
  dependency-version: 3.3.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Ensure presets/configs for yaml/spec match (ethereum#4297)

* Add checks to ensure presets/configs for yaml/spec match

* Simplify

* Clean up generator runner (ethereum#4301)

* Clean up generator runner

* Fix mistake

* Fix mistake when doing multiprocessing

* Refactor `kzg_7594` generator (ethereum#4296)

* Refactor `kzg_4844` generator (ethereum#4300)

* Fix two mistakes when refactoring the `kzg_4844` generator (ethereum#4302)

* Deprecate BlobSidecarsByRange/Root in Fulu (ethereum#4286)

* Bump version to v1.5.0 (ethereum#4303)

* Refactor bls generator (ethereum#4304)

* Improve generator UX (ethereum#4309)

* Refactor `gen_runner` (ethereum#4310)

* Fix typos in blob configuration comments for fulu presets (ethereum#4311)

* Introduce blob schedule (ethereum#4277)

* Bump the actions group with 2 updates (ethereum#4312)

* Clarification on custody sampling (ethereum#4251)

* Nits on custody sampling

* Update specs/fulu/das-core.md

Co-authored-by: fradamt <[email protected]>

* Update SAMPLES_PER_SLOT

* Not specifying the unit of samples

Co-authored-by: fradamt <[email protected]>

---------

Co-authored-by: fradamt <[email protected]>

* Simplify reference test generators (ethereum#4317)

* Fix assert in `run_get_committee_assignment` (ethereum#4315)

* Wrap lines at 80 characters in all markdown files

* Generate reference tests for EIP7732 & EIP7805 (ethereum#4319)

* Use latest version of uv when creating the venv (ethereum#4325)

* Fix link to das-core in fulu validator specs (ethereum#4324)

* Do import sorting with isort (ethereum#4327)

* Fix phase run decorator to skip EIP-7732 as intended (ethereum#4326)

* Update `isort` to `order_by_type = false` (ethereum#4328)

* Bump version to 1.6.0-alpha.0 (ethereum#4329)

* Add to epoch processing tests generation states before and after full epoch processing (ethereum#4155)

* State that reconstructed sidecars which are not custodied may be deleted (ethereum#4332)

* Clarify node behavior when validator custody changes (ethereum#4320)

* Bind inputs in ssz_generic reftests (ethereum#4333)

* Bump the actions group with 3 updates

Bumps the actions group with 3 updates: [pycryptodome](https://github.com/Legrandin/pycryptodome), [setuptools](https://github.com/pypa/setuptools) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `pycryptodome` from 3.22.0 to 3.23.0
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](Legrandin/pycryptodome@v3.22.0...v3.23.0)

Updates `setuptools` from 80.4.0 to 80.7.1
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v80.4.0...v80.7.1)

Updates `mkdocs-material` from 9.6.13 to 9.6.14
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](squidfunk/mkdocs-material@9.6.13...9.6.14)

---
updated-dependencies:
- dependency-name: pycryptodome
  dependency-version: 3.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: setuptools
  dependency-version: 80.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mkdocs-material
  dependency-version: 9.6.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>

* Run linting on pysetup directory (ethereum#4335)

* Delete unnecessary eth2spec/eip7732/__init__.py file (ethereum#4336)

* Bump the actions group with 4 updates

Bumps the actions group with 4 updates: ruamel-yaml, [setuptools](https://github.com/pypa/setuptools), [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) and [mdformat-gfm-alerts](https://github.com/kyleking/mdformat-gfm-alerts).


Updates `ruamel-yaml` from 0.18.10 to 0.18.11

Updates `setuptools` from 80.7.1 to 80.8.0
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v80.7.1...v80.8.0)

Updates `pytest-xdist` from 3.6.1 to 3.7.0
- [Release notes](https://github.com/pytest-dev/pytest-xdist/releases)
- [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-xdist@v3.6.1...v3.7.0)

Updates `mdformat-gfm-alerts` from 1.0.1 to 1.0.2
- [Release notes](https://github.com/kyleking/mdformat-gfm-alerts/releases)
- [Commits](KyleKing/mdformat-gfm-alerts@v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: ruamel-yaml
  dependency-version: 0.18.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: setuptools
  dependency-version: 80.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: pytest-xdist
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mdformat-gfm-alerts
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>

* Allow custom arg parser in test generators (ethereum#4339)

* Markdown to SpecObject refactoring (ethereum#4330)

* Remove deneb/electra from blob schedule and default to electra limit (ethereum#4341)

* Set blob schedule to an empty list (ethereum#4342)

* Fix handling of multiple Python definitions in code blocks (ethereum#4344)

* Updated minimum python version to 3.10 (ethereum#4345)

Co-authored-by: Justin Traglia <[email protected]>

* Bump version to v1.6.0-alpha.1 (ethereum#4347)

* Update default shell to bail on error (ethereum#4349)

* Run linter on setup.py (ethereum#4348)

* Bump the actions group with 4 updates (ethereum#4355)

Bumps the actions group with 4 updates: ruamel-yaml, [setuptools](https://github.com/pypa/setuptools), [pytest](https://github.com/pytest-dev/pytest) and [mypy](https://github.com/python/mypy).


Updates `ruamel-yaml` from 0.18.11 to 0.18.12

Updates `setuptools` from 80.8.0 to 80.9.0
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v80.8.0...v80.9.0)

Updates `pytest` from 8.3.5 to 8.4.0
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@8.3.5...8.4.0)

Updates `mypy` from 1.15.0 to 1.16.0
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](python/mypy@v1.15.0...v1.16.0)

---
updated-dependencies:
- dependency-name: ruamel-yaml
  dependency-version: 0.18.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: setuptools
  dependency-version: 80.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: pytest
  dependency-version: 8.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mypy
  dependency-version: 1.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add repo input to reftest generator action (ethereum#4356)

* EIP-7917: Deterministic proposer lookahead (ethereum#4190)

* Validator custody: Increase only and optional dynamic backfill. (ethereum#4357)

* Replace black/pylint/isort with ruff (ethereum#4350)

* Delete unnecessary container comments (ethereum#4358)

* Run linter on code in markdown files (ethereum#4359)

* EIP-7917: Refactor return types from List to Vector (ethereum#4361)

* Increase mainnet tests timeout to 12 hours (ethereum#4362)

* Use python 3.13 in CI actions (ethereum#4363)

* Fix epoch processing tests for proposer lookahead (ethereum#4364)

* Alias new test to blocks handler (ethereum#4365)

* Fix a few things in setup.py (ethereum#4360)

* Detect errors in reference test generator action (ethereum#4366)

* Bump version to v1.6.0-alpha.2 (ethereum#4368)

* Suggest using getBlobsV2 to get blobs/proofs

* Use getPayloadV5

* Bump the actions group with 3 updates (ethereum#4372)

* Define requirements for the blob schedule (ethereum#4370)

* CGC: Update before Fulu (ethereum#4373)

* Modify fork digest to distinguish BPO forks + add entry to ENR (ethereum#4354)

* Introduce Status v2 with `earliest_available_slot` (ethereum#4374)

* Add fork version to compute fork digest test cases (ethereum#4376)

* Do not wrap long lines in `config.yaml` files (ethereum#4379)

Spec configs follow a YAML subset that does not involve linebreaks,
to avoid requiring client implementations to include a full YAML lib.

When Ruamel YAML was updated recently, the default settings changed and
certain tests started to emit `config.yaml` with linebreaks. By setting
Ruamel config `width` to a larger value, previous behaviour is restored.

* EIP-7917: Add test for proposer lookahead excluding exited validators

* Add more proposer lookahead tests

* Bump the actions group with 4 updates (ethereum#4385)

Bumps the actions group with 4 updates: [marko](https://github.com/frostming/marko), [py-ecc](https://github.com/ethereum/py_ecc), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [mypy](https://github.com/python/mypy).


Updates `marko` from 2.1.3 to 2.1.4
- [Release notes](https://github.com/frostming/marko/releases)
- [Changelog](https://github.com/frostming/marko/blob/master/CHANGELOG.md)
- [Commits](frostming/marko@v2.1.3...v2.1.4)

Updates `py-ecc` from 7.0.1 to 8.0.0
- [Release notes](https://github.com/ethereum/py_ecc/releases)
- [Changelog](https://github.com/ethereum/py_ecc/blob/main/docs/release_notes.rst)
- [Commits](ethereum/py_ecc@v7.0.1...v8.0.0)

Updates `pytest-cov` from 6.1.1 to 6.2.1
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v6.1.1...v6.2.1)

Updates `mypy` from 1.16.0 to 1.16.1
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](python/mypy@v1.16.0...v1.16.1)

---
updated-dependencies:
- dependency-name: marko
  dependency-version: 2.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: py-ecc
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: pytest-cov
  dependency-version: 6.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: mypy
  dependency-version: 1.16.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix yields in new proposer lookahead test (ethereum#4386)

* Add fork choice compliance test generator (ethereum#3831)

* Replace ast.unparse() with custom parsing (ethereum#4387)

* Combine helpers into compute_time_at_slot (ethereum#4388)

* Add execution_requests to fulu.GetPayloadResponse (ethereum#4389)

* Add jtraglia's spec viewer to the readme (ethereum#4392)

* Fix test_effective_decrease_balance_updates_lookahead reftest (ethereum#4395)

* Remove dead attestation generation code (ethereum#4396)

* Use get_blob_parameters in gossip block validation

* Add nightly workflow to deal with stale issues/PRs

* Bump version to v1.6.0-alpha.3

* Bump the actions group with 2 updates (ethereum#4405)

* Bump the actions group with 2 updates

Bumps the actions group with 2 updates: [pytest](https://github.com/pytest-dev/pytest) and [ruff](https://github.com/astral-sh/ruff).


Updates `pytest` from 8.4.0 to 8.4.1
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@8.4.0...8.4.1)

Updates `ruff` from 0.11.13 to 0.12.0
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.11.13...0.12.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 8.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: ruff
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <[email protected]>

* Fix imports

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Traglia <[email protected]>

* Correct the docstrings for `process_execution_payload` tests with blobs (ethereum#4408)

* Fix formatting for Capella preset (ethereum#4411)

* Add support for automated releases (ethereum#4409)

* Remove unnecessary config overrides in test (ethereum#4410)

* Remove peer sampling in Fulu (ethereum#4393)

* Add some clarifications around new ENR changes (ethereum#4406)

* Clarify peering expectations when `nfd` values are different (ethereum#4407)

* `DataColumnSidecarsByRoot`: Serve for finalized epochs. (ethereum#4394)

* Test proposer lookahead initialization uses active validator set at fork (ethereum#4413)

* Add PeerDAS tests (ethereum#4391)

* Update release documentation (ethereum#4416)

* Run mdformat on all markdown files (ethereum#4417)

* Convert DAS providers section to supernodes section (ethereum#4415)

* Fix sanity test steps in release action (ethereum#4418)

* Remove blobs/proofs from new PeerDAS forkchoice tests (ethereum#4421)

* Increase release action timeout to 24 hours (ethereum#4423)

* In the release action, disable sanity checks & remove sudo (ethereum#4425)

* In the release action, add back sudo (ethereum#4428)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: threehonor <[email protected]>
Co-authored-by: Bhargava Shastry <[email protected]>
Co-authored-by: Justin Traglia <[email protected]>
Co-authored-by: fradamt <[email protected]>
Co-authored-by: Justin Traglia <[email protected]>
Co-authored-by: Enrico Del Fante <[email protected]>
Co-authored-by: George Kadianakis <[email protected]>
Co-authored-by: Rebustron <[email protected]>
Co-authored-by: Etan Kissling <[email protected]>
Co-authored-by: Hara <[email protected]>
Co-authored-by: terence <[email protected]>
Co-authored-by: Gabriel Astieres <[email protected]>
Co-authored-by: Potuz <[email protected]>
Co-authored-by: EvgeniyZh <[email protected]>
Co-authored-by: Rafael Matias <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JihoonSong <[email protected]>
Co-authored-by: threehonor <[email protected]>
Co-authored-by: Jimmy Chen <[email protected]>
Co-authored-by: Lion - dapplion <[email protected]>
Co-authored-by: fradamt <[email protected]>
Co-authored-by: Alex Stokes <[email protected]>
Co-authored-by: Manu NALEPA <[email protected]>
Co-authored-by: NC <[email protected]>
Co-authored-by: Tyler <[email protected]>
Co-authored-by: Mikhail Kalinin <[email protected]>
Co-authored-by: Barnabas Busa <[email protected]>
Co-authored-by: Ben Edgington <[email protected]>
Co-authored-by: Derek Guenther <[email protected]>
Co-authored-by: Mehdi AOUADI <[email protected]>
Co-authored-by: Cypher Pepe <[email protected]>
Co-authored-by: Michel Simonot <[email protected]>
Co-authored-by: Wenceslas Sanchez <[email protected]>
Co-authored-by: SunnysidedJ <[email protected]>
Co-authored-by: Leo Lara <[email protected]>
Co-authored-by: Pop Chunhapanya <[email protected]>
Co-authored-by: Alex Vlasov <[email protected]>
Co-authored-by: Lin Oshitani <[email protected]>
Co-authored-by: raulk <[email protected]>
Co-authored-by: Agnish Ghosh <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants